home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 005 / investmt.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-04-04  |  19.2 KB  |  564 lines

  1. 10  CLEAR 800
  2. 20  '     PROGRAM INVEST1.BAS
  3. 180  CLS
  4. 190  PRINT TAB(15)"================================"
  5. 200  PRINT TAB(18)"INVESTMENT ANALYSIS PROGRAM"
  6. 210  PRINT TAB(18)"INCOME PRODUCING INVESTMENTS"
  7. 220  PRINT TAB(15)"================================"
  8. 230  FOR HOLD=1 TO 1000
  9. 231  NEXT
  10. 270  DEFINT K,M,N
  11. 280  I=0:J=0:K=0:M=0:N=0:P=0:PV=0:PI=0:SP=0:CS=0
  12. 290  D$="$$#,######.##"
  13. 300  PM=3
  14. 310  I9=25  '  max. # of items to be read in
  15. 320  IP=0:PP=0:A=0:B=0:V=0:SI=0:F=1:FL=0:TC=0
  16. 330  DIM F$(30), V(30), DP(4,15), D(30), SF(30), PV(4,3), PI(4,3)
  17. 370  DIM A1(30), A2(30), E1(30), E2(30), EX(30), T1(30),T2(30)
  18. 400  DIM B1(30), B2(30), CF(30), DF(30), DI(30), DY(30), IP(30), IZ(30), TC(30)
  19. 460  GOTO 580
  20. 470  '  sub her for speed, todo loan calculations
  21. 490  FOR J1=1 TO NP
  22. 500       IP=I1*A
  23. 510       IP=INT(IP*100)/100
  24. 520       SI=SI+IP
  25. 522       PP=P-IP
  26. 530       A=A-PP
  27. 540       B=B+PP
  28. 550  NEXT J1
  29. 560  RETURN
  30. 570  '   transfer to initialization
  31. 580  '   transfer to initialization
  32. 590   GOSUB 6200
  33. 610  PV=0:SI=0:B=0:A=0:DI=0:PI=0  ' initialize counters for sums
  34. 620  TC=0:F=0:FL=0:F1=0
  35. 630  SP=0:CS=0
  36. 650  '   initialize all arrays to 0
  37. 660  CLS
  38. 670  PRINT TAB(30)"INITIALIZE EVERYTHING"
  39. 680  FOR I=1 TO 30
  40. 690       PRINTI;
  41. 700       D(I)=0:CF(I)=0:EX(I)=0:E1(I)=0:E2(I)=0:TC(I)=0:T1(I)=0:T2(I)=0:SF(I)=0
  42. 790  NEXT I
  43. 800  CLS
  44. 810  PRINT"NAME OF INVESTMENT IS -----";NI$
  45. 820  INPUT"IF NEW NAME, ENTER IT -";NI$
  46. 830  GOSUB 5160 '   TRANSFER TO DATA INPUT
  47. 840  CLS
  48. 850  PRINT TAB(10)"=================================================="
  49. 860  PRINT TAB(13)"DO YOU WANT TO TAKE INVESTMENT TAX CREDIT?"
  50. 870  PRINT TAB(10)"=================================================="
  51. 880  Y$=INKEY$:IF Y$="" THEN 880 ELSE IF INSTR("NSns",Y$) =0 THEN PRINT"pLEASE ANSWER ONLY `Y' OR `N'.:GOTO 860
  52. 890  IF Y$="Y" OR Y$ = "y" THEN TC=1 ELSE TC=0
  53. 900  CLS
  54. 910  '   NOW READ IN DEPRECIATION TABLE
  55. 920  RESTORE
  56. 930  CLS
  57. 940  PRINT TAB(30)"READING DEPRECIATION TABLE"
  58. 950  GOSUB 5910
  59. 960  GOSUB 1650
  60. 970  ' CALC. TAX CREDIT---IT IS ALLOWED ON 100% OF 5 YEAR AND MORE PROPERTY
  61. 980  '                    AND ON 60% OF 3 YEAR PROPERTY
  62. 1000  TC=TC*0.1*(V(20)+V(21)+0.6*V(19))
  63. 1010  '    DOES YEARLY CASH FLOWS
  64. 1020  KD=0
  65. 1030  CLS
  66. 1040  PRINT TAB(25)"NOW WORKING ON YEARLY CASH FLOWS"
  67. 1060  IF V(6)=0 THEN F=1 ELSE F=0
  68. 1080  '
  69. 1090  FOR K=1 TO V(18)
  70. 1100       PRINTK
  71. 1110       IF (K-V(6))>0 THEN KA= 1 ELSE KA=0
  72. 1120       IF F=1 THEN 1180
  73. 1130       IF FL=-1 THEN F=1:F1=F:GOTO 1180
  74. 1140      IF V(6) > K THEN F=O:GOTO 1180  'NO INCOME YET
  75. 1150      F=K-V(6)
  76. 1160       F1=0
  77. 1170       FL=1
  78. 1180       E1(K)=F*V(11)*(1+V(13)/100)^(K-1)
  79. 1190       EX(K)=F*V(12)*(1+V(14)/100)^K
  80. 1200       KD=KD+KA
  81. 1210       IF KD=0 THEN 1240
  82. 1220       IF KD>15 THEN 1240 '  BYPASS DEPRECIATION
  83. 1230       D(K)=DP(1,KD)*V(19)+V(20)*DP(2,KD)+V(21)*DP(3,KD)+V(22)*DP(4,KD)+V(23)/15
  84. 1240       E2(K)=E1(K)-D(K)-EX(K)-IP(K)-IZ(K)
  85. 1250       IF TL=0 AND K>1 THEN 1420  '  check for loss to carry forward
  86. 1260       IF E2(K) <0 THEN TL=TL+(-1*E2(K)):T1(K)=0:T2(K)=0:GOTO 1530
  87. 1270       IF E2(K) > TL THEN 1300
  88. 1280       TL=TL-(-1*E2(K)):T1(K)=0:T2(K)=0
  89. 1290       GOTO 1530
  90. 1300       E2=E2(K)-TL:TL=0
  91. 1310       T2(K)= V(16)/100*E2 '  STATE TAX PAID
  92. 1320       T1(K)=V(15)/100*(E2-T2(K))  '  FED TAX PAID
  93. 1330       IF TC=0 THEN 1530
  94. 1340       IF TC< T1(K) THEN 1380 ELSE TC(K) = T1(K)
  95. 1350       TC=TC-T1(K)
  96. 1360       T1(K)=0
  97. 1370       GOTO 1530
  98. 1380       TC(K)=TC
  99. 1390       T1(K)=T1(K)-TC
  100. 1400       TC=0
  101. 1410       GOTO 1530
  102. 1420      IF E2(K)>0 THEN T2(K) = V(16)/100*E2(K) ELSE T2(K)=0
  103. 1430       IF E2(K) =>0 THEN T1(K)=(E2(K)-T2(K))*V(15)/100 ELSE T1(K)=0
  104. 1440      IF E2(K)<0 THEN TL= -1*E2(K): GOTO 1530
  105. 1450      IF TC=0 THEN 1530
  106. 1460       IF TC < T1(K) THEN 1500 ELSE TC(K)= T1(K)
  107. 1470       TC =TC - T1(K)
  108. 1480       T1(K)=0
  109. 1490      GOTO 1530
  110. 1500       TC(K)=TC
  111. 1510      T1(K)=T1(K) -TC
  112. 1520       TC=0
  113. 1530       CF(K)=E2(K)-T1(K)-T2(K)+D(K) ' cash flow for year k
  114. 1540       DF(K)=CF(K)*(1+V(17)/100)^-K
  115. 1550       DI(K)=CF(K)*(1+V(25)/100)^-K
  116. 1560       DY(K)= DI(K)*(1+V(17)/100)^-K
  117. 1570       SF(K)= E1(K)-EX(K)-T1(K)-T2(K)-IP(K)-IZ(K)-A1(K)-A2(K) ' spendable cash flow
  118. 1580       IF SF(K)<0 THEN SP=SP+(-1)*SF(K):CS=CS+1
  119. 1600       PV=DF(K) + PV
  120. 1610       PI=DY(K)+PI
  121. 1612      SF=SF(K)+SF
  122. 1620  NEXT K
  123. 1630  GOSUB 2240 ' print it out
  124. 1640  END
  125. 1650   '   TO TAKE CARE OF LOANS
  126. 1660  CLS
  127. 1670  PRINT TAB(25)"NOW WORKING ON FIRST LOAN"
  128. 1690  IF V(2)=0 THEN 1890 ' TRANSFER IF NO 1ST LOAN
  129. 1700  I1=V(3)/100/V(5)  ' INTEREST PER PEROID
  130. 1710  I1=V(3)/100/V(5)  ' INTEREST PER PEROID
  131. 1720  S=0
  132. 1730  S2=0
  133. 1740  A=V(2)
  134. 1750  V=(I1+1)^(V(4)*V(5))
  135. 1760  P=V(2)*(I1*V)/(V-1)
  136. 1770  P= INT((100*P)/100)
  137. 1780  NP=V(5)
  138. 1790  J2=1
  139. 1800  GOSUB 470
  140. 1810  A1(J2)=B
  141. 1820  IP(J2)=SI
  142. 1830  IF J2=V(4) THEN 1950
  143. 1840  PRINT J2,
  144. 1850  SI=0
  145. 1860  B=0
  146. 1870  J2=J2+1
  147. 1880  GOTO 1800
  148. 1890   ' no 1st loan
  149. 1900  IF IP(1)=0 THEN 1950 ' check to see if arrays zerroed
  150. 1910  FOR JZ = 1 TO 30
  151. 1920       IP(JZ)=0
  152. 1930       A1(JZ)=0
  153. 1940  NEXT JZ
  154. 1950  '  now do 2nd loan
  155. 1960  CLS
  156. 1970  PRINT TAB(25)"NOW WORKING ON THE 2ND. LOAN"
  157. 1980  IF V(7)=0 THEN 2170 ' TRANSFER IF NO 2ND. LOAN
  158. 1990  A=V(7)
  159. 2000  SI=0
  160. 2010  B=0
  161. 2020  I1=V(8)/100/V(10)
  162. 2030  V=(I1+1)^(V(9)*V(10))
  163. 2040  P=V(7)*(I1*V)/(V-1)
  164. 2050  P= INT(P*100)/100
  165. 2060  NP=V(10)
  166. 2070  J2=1
  167. 2080  PRINT J2,
  168. 2090  GOSUB 470
  169. 2100  A2(J2)=B
  170. 2110  IZ(J2)=SI
  171. 2120  IF J2=V(9) THEN RETURN
  172. 2130  SI=0
  173. 2140  B=0
  174. 2150  J2=J2+1
  175. 2160  GOTO 2080
  176. 2170  '  here because no 2nd. loan
  177. 2180  IF IZ(1) AND A2(1)=0 THEN RETURN
  178. 2190  FOR JZ=1 TO 30
  179. 2200       IZ(JZ)=0
  180. 2210       A2(JZ)=0
  181. 2220  NEXT JZ
  182. 2230  RETURN
  183. 2240  '   NOW PRINT OUT RESULTS
  184. 2250  CLS
  185. 2260  PRINT TAB(30)"RESULTS OF CALCULATIONS :"
  186. 2270  PRINT TAB(36)"SUMMARY"
  187. 2280  PRINT TAB(28)"==========================="
  188. 2290  PRINT USING"PRESENT VALUE OF CASH FLOW -----$$#,###,###.##";PV
  189. 2300  PRINT USING"PRESENT VALUE CONSTANT YEAR ----$$#,###,###.##";PI
  190. 2310  IF PV<V(1) THEN PRINT"     NOTE THAT PRESENT VALUE IS LESS THEN INVESTMENT!"
  191. 2320  PRINT TAB(10)"=============================================================="
  192. 2330  PRINT"DO YOU WANT TO SEE YEARLY DETAILS, `Y' OR `N' ?"
  193. 2340  Y$=INKEY$:IF Y$="" THEN 2340 ELSE IF INSTR("YNyn",Y$)=0 THEN PRINT"PLEASE ENTER ONLY A `Y' OR `N'.":GOTO 2330
  194. 2350  IF Y$="N" OR Y$="n" THEN 2550
  195. 2360  FOR K=1 TO V(18)
  196. 2370  CLS
  197. 2380  PRINT USING"     INCOME ---------------$$#,######.##";E1(K)
  198. 2390  PRINT USING"     EXPENSES -------------$$#,######.##";EX(K)
  199. 2400  PRINT USING"     DEPRECIATION ---------$$#,######.##";D(K)
  200. 2410  PRINT USING"     INTEREST(1ST. LOAN) --$$#,######.##";IP(K)
  201. 2420  PRINT USING"     INTEREST(2ND. LOAN) --$$#,######.##";IZ(K)
  202. 2430  PRINT USING"     PRINCIPAL(1ST. LOAN) -$$#,######.##";A1(K)
  203. 2440  PRINT USING"     PRINCIPAL(2ND.LOAN) --$$#,######.##";A2(K)
  204. 2450  PRINT USING"     TAXABLE INCOME -------$$#,######.##";E1(K)-EX(K)-D(K)-IP(K)-IZ(K)
  205. 2460  PRINT USING"     STATE TAXES PAID -----$$#,######.##";T2(K)
  206. 2470  PRINT USING"     FEDERAL TAX PAID -----$$#,######.##";T1(K)
  207. 2480  PRINT USING"     AFTER TAX CASH FLOW --$$#,######.##";CF(K)
  208. 2490  PRINT USING"     DISCOUNTED CASH FLOW -$$#,######.##";DY(K)
  209. 2500  PRINT USING"     COSTANT DOLLAR CASH --$$#,######.##";DY(K)
  210. 2510  PRINT USING"     SPENDABLE CASH FLOW --$$#,######.##";SF(K)
  211. 2520  PRINT:PRINT"THIS IS FOR YEAR  "K"  PRESS ANY KEY FOR NEXT YEAR."
  212. 2530  Y$=INKEY$:IF Y$="" THEN 2530
  213. 2540  NEXT K
  214. 2550  CLS
  215. 2560  PRINT TAB(15)"DO YOU WANT HARD COPY, `Y' OR `N'.?"
  216. 2570  Y$=INKEY$:IF Y$="" THEN 2570 ELSE IF INSTR("YNyn",Y$)=0 THEN PRINT"PLEASE ENTER ONLY `Y' OR `N'.":GOTO 2560
  217. 2580  IF Y$="Y" OR Y$="y" THEN GOSUB 2690
  218. 2590  CLS
  219. 2600  PRINT:PRINT:PRINT:PRINT"DO YOU WANT TO RUN A SENSITIVITY ANALYSIS,`Y' OR `N'?"
  220. 2610  Y$=INKEY$:IF Y$="" THEN 2610 ELSE IF INSTR("YNyn",Y$)=0 THEN PRINT"PLEASE ENTER ONLY `Y' OR `N'.":GOTO 2610
  221. 2620  IF Y$="Y" OR Y$="y" THEN GOSUB 3210
  222. 2630  PRINT:PRINT:PRINT:PRINT"DO YOU WANT TO RUN ANOTHER CASE, `Y' OR `N'."
  223. 2640  Y$=INKEY$:IF Y$="" THEN 2640 ELSE IF INSTR("YNyn",Y$)=0 THEN PRINT"PLEASE ENTER ONLY A `Y'or `N'."
  224. 2650  IF Y$="Y" OR Y$="y" THEN 610
  225. 2660  PRINT TAB(34)"SESSION OVER"
  226. 2680  END
  227. 2690  PRINT TAB(20)"HARD COPY ROUTINE. PLEASE BE SURE PRINTER IS ON."
  228. 2692  PRINT:PRINT:PRINT"                   IF ON, THEN HIT ANY KEY."
  229. 2694  YY$= INKEY$:IF YY$="" THEN GOTO 2694 ELSE 2700
  230. 2700  LPRINT TAB(20)"RESULTS OF INVESTMENT ANALYSIS PROGRAM"
  231. 2710  LPRINT " ":LPRINT TAB(24)"FOR INVESTMENT ";NI$
  232. 2720  LPRINT " ":LPRINT " "
  233. 2730  LPRINT TAB(30)"INPUT DATA SUMMARY"
  234. 2740  FOR I = 1 TO 25
  235. 2750       LPRINT TAB(10);
  236. 2760       LPRINT USING F$(I);V(I)
  237. 2770  NEXT I
  238. 2780  LPRINT " ":LPRINT STRING$(80,"=")
  239. 2790  LPRINT " ":LPRINT " ":LPRINT" ":LPRINT" ":LPRINT" ":LPRINT" ":LPRINT" "
  240. 2800  LPRINT TAB(30)"SUMMARY OF RESULTS":LPRINT " ":LPRINT " "
  241. 2810  LPRINT TAB(10) USING"CURRENT YEAR DOLLARS PRESENT VALUE OF CASH FLOWS -----$$#,######.##";PV
  242. 2820  LPRINT TAB(10) USING"CONSTANT YEAR DOLLAR PRESENT VALUE OF CASH FLOWS -----$$#,######.##";PI
  243. 2850  LPRINT TAB(10) USING"NET PRESENT VALUE (DISCOUNTED CASH COSTS) IS ---------$$#,######.##";PV-V(1)
  244. 2870  LPRINT TAB(10) USING"CONSTANT YEAR NET PRESENT VALUE ----------------------$$#,######.##";PI-V(1)
  245. 2872  LPRINT TAB(10) USING"spendable cash flow over the ## years ----------------$$#,######.##";V(18),SF
  246. 2890  IF V(1) > PV THEN LPRINT TAB(12) USING"YOU LOST $$#,######.## IN PRESENT VALUE.";V(1)-PV
  247. 2900  IF V(1) > PI THEN LPRINT TAB(12) USING"YOU LOST $$#,######.## IN PURCHASING POWER.";V(1)-PI
  248. 2910  LPRINT " ":LPRINT STRING$(80,"=")
  249. 2912  PRINT:PRINT:PRINT:PRINT"DO YOU WANT TO PRINT OUT THE YEARLY OPERATIONAL RESULTS?"
  250. 2913  Y$=INKEY$:IF Y$="" THEN 2913 ELSE IF INSTR ("ynYN",Y$) = 0 THEN PRINT "PLEASE ENTER ONLY A `Y' OR A `N'.":GOTO 2912
  251. 2914  IF Y$="Y" OR Y$="y" THEN GOTO 2930 ELSE RETURN
  252. 2930  FOR QQ=1 TO 20
  253. 2931  LPRINT" "
  254. 2932  NEXT QQ
  255. 2940  LPRINT TAB(25)"RESULTS OF EACH YEARS OPERATION"
  256. 2950  FOR I = 1 TO V(18)
  257. 2960       LPRINT" ":LPRINT" ":LPRINT TAB(30)"RESULTS FOR YEAR"I
  258. 2970  LPRINT" ":LPRINT STRING$(80,"="):LPRINT" "
  259. 2980  LPRINT TAB(10) USING"GROSS INCOME ---------------------------------$$#,######.##";E1(I)
  260. 2990  LPRINT TAB(10) USING"EXPENSES -------------------------------------$$#,######.##";EX(I)
  261. 3000  LPRINT TAB(10) USING"DEPRECIATION ---------------------------------$$#,######.##";D(I)
  262. 3010  LPRINT TAB(10) USING"INTEREST FIRST LOAN --------------------------$$#,######.##";IP(I)
  263. 3020  LPRINT TAB(10) USING"PRINCIPAL FIRST LOAN -------------------------$$#,######.##";A1(I)
  264. 3030  LPRINT TAB(10) USING"INTEREST SECOND LOAN -------------------------$$#,######.##";IZ(I)
  265. 3040  LPRINT TAB(10) USING"PRINCIPAL SECOND LOAN ------------------------$$#,######.##";A2(I)
  266. 3050  LPRINT TAB(10) USING"TAXABLE INCOME -------------------------------$$#,######.##";E2(I)
  267. 3060  LPRINT TAB(10) USING"STATE TAX PAID -------------------------------$$#,######.##";T2(I)
  268. 3070  LPRINT TAB(10) USING"INVESTMENT TAX CREDIT TAKEN ------------------$$#,######.##";TC(I)
  269. 3080  LPRINT TAB(10) USING"FEDERAL TAX PAID -----------------------------$$#,######.##";T1(I)
  270. 3090  LPRINT TAB(10) USING"AFTER TAX CASH FLOW --------------------------$$#,######.##";CF(I)
  271. 3100  LPRINT TAB(10) USING"CONSTANT DOLLAR CASH FLOW --------------------$$#,######.##";DI(I)
  272. 3110  LPRINT TAB(10) USING"DISCOUNTED CURRENT YEAR CASH FLOW ------------$$#,######.##";DI(I)
  273. 3120  LPRINT TAB(10) USING"DISCOUNTED CONSTANT YEAR CASH FLOW -----------$$#,######.##";DY(I)
  274. 3130  LPRINT TAB(10) USING"SPENDABLE CASH FLOW --------------------------$$#,######.##";SF(I)
  275. 3140  IF SF(I)<0 THEN LPRINT" ":LPRINT TAB(10)"**** NOTE THAT SPENDABLE CASH IS NEGATIVE, YOU WILL HAVE TO BORROW ****"
  276. 3150  LPRINT" ":LPRINT" ":LPRINT STRING$(80,"=")
  277. 3160  IF INT(I/2)-I/2= 0 THEN FOR QQ= 1 TO 15 ELSE 3180
  278. 3161  LPRINT " "
  279. 3162  NEXT QQ
  280. 3180  NEXT I
  281. 3190  LPRINT STRING$(80,"=")
  282. 3200  RETURN
  283. 3210  '    SUB FOR SENSITIVITY ANALYSIS
  284. 3220  CLS
  285. 3230  PRINT TAB(20)"YOU HAVE SELECTED SENSITIVITY ANALYSIS."
  286. 3240  PRINT TAB(10)"PLEASE NOTE THAT ONLY A FEW ITEMS ARE CHECKED:"
  287. 3250  PRINT:PRINT TAB(15)"1-ESTIMATED INCOME, +/- 10% VARIATION."
  288. 3260  PRINT TAB(15)"2-ESTIMATED EXPENSE, +/- 10% VARIATION."
  289. 3270  PRINT TAB(15)"3-ESCALATION O0F INCOME, +/- 10%."
  290. 3280  PRINT TAB(15)"4-ESCLATION OF EXPENSE, +/- 10%."
  291. 3300  PRINT:PRINT"THE LONGER THE LIFE OF THE INVESTMENT, THE LONGER THE CALCULATIONS TAKE."
  292. 3320  PRINT
  293. 3330  PRINT"DO YOU WANT AN INVESTMENT TAX CREDIT,`Y' OR `N'?
  294. 3340  Y$=INKEY$:IF Y$="" THEN 3340 ELSE IF INSTR("ynYN",Y$)=0 THEN PRINT"PLEASE ENTER ONLY A `Y' OR `N'.:GOTO 3330
  295. 3350  IF Y$="Y" OR Y$="y" THEN T1=1 ELSE T1=0
  296. 3360  PRINT TAB(35)"START BY VARYING INCOME"
  297. 3370  PV(1,1)=PV
  298. 3380  PI(1,1)=PI
  299. 3390  TEMP=V(11)
  300. 3400  V(11)=TEMP*1.1
  301. 3410  GOSUB 4010
  302. 3420  PV(1,2)=PV
  303. 3430  PI(1,2)=PI
  304. 3440  V(11)=TEMP*0.9
  305. 3450  GOSUB 4010
  306. 3460  PV(1,3)=PV
  307. 3470  PI(1,3)=PI
  308. 3480  V(11)=TEMP
  309. 3490  TEMP=V(12)
  310. 3500  V(12)=TEMP*1.1
  311. 3510  GOSUB 4010
  312. 3520  PV(2,2)=PV
  313. 3530  PI(2,2)=PI
  314. 3540  V(12)=0.9*TEMP
  315. 3550  GOSUB 4010
  316. 3560  PV(2,3)=PV
  317. 3570  PI(2,3)=PI
  318. 3580  V(12)=TEMP
  319. 3590  TEMP=V(13) '  ESCALATOR FOR INCOME
  320. 3600  V(13)=TEMP*1.1
  321. 3610  GOSUB 4010
  322. 3620  PV(3,2)=PV
  323. 3630  PI(3,2)=PI
  324. 3640  V(13)=TEMP*0.9
  325. 3650  GOSUB 4010
  326. 3660  PV(3,3)=PV
  327. 3670  PI(3,3)=PI
  328. 3680  V(13)=TEMP
  329. 3690  TEMP=V(14)
  330. 3700  V(14)=1.1*TEMP
  331. 3710  GOSUB 4010
  332. 3720  PV(4,2)=PV
  333. 3730  PI(4,2)=PI
  334. 3740  V(14)=0.9*TEMP
  335. 3750  GOSUB 4010
  336. 3760  PV(4,3)=PV
  337. 3770  PI(4,3)=PI
  338. 3780  V(14)=TEMP
  339. 3790  CLS
  340. 3800  PRINT TAB(30)"SENSITIVITY ANALYSIS IS COMPLETE"
  341. 3810  PRINT:PRINT"THE RESULTS ARE :"
  342. 3820  PRINT TAB(5)"1-A 10% INCREASE IN INCOME CHAMGES THE PRESENT VALUE";
  343. 3830  PRINT USING" FROM $$#,######.## TO $$#,######.##";PV(1,1),PV(1,2)
  344. 3860  PRINT TAB(5) USING"2-A 10% DECREASE IN INCOME CHANGES THE PRESENT VALUE TO $$#,######.##";PV(1,3)
  345. 3880  PRINT TAB(5) USING"3-A 10% INCREASE IN EXPENSES CHANGES PRESENT VALUE TO $$#,######.##";PV(2,2)
  346. 3900  PRINT TAB(5) USING"4-A 10% DECREASE IN EXPENSES CHANGES PRESENT VALUE TO $$#,######.##";PV(2,3)
  347. 3920  PRINT TAB(5) USING"5-A 10% INCREASE IN THE GROWTH RATE OF INCOME CHANGES THE PRESENT VALUE TO $$#,######.##";PV(3,2)
  348. 3940  PRINT TAB(5) USING"6-A 10% DECREASE IN INCOME GROWTH CHANGES THE PRESENT VALUE TO $$#,######.##";PV(3,3)
  349. 3950  PRINT TAB(5) USING"7-A 10% INCREASE IN EXPENSE GROWTH GIVES $$#,######.##";PV(4,2)
  350. 3960  PRINT TAB(5) USING"8-A 10% DECREASE IN EXPENSE GROWTH GIVES $$#,######.##";PV(4,2)
  351. 3970  PRINT:PRINT" DO YOU WANT HARD COPY, `Y' OR `N'."
  352. 3980  Y$=INKEY$:IF Y$="" THEN 3980 ELSE IF INSTR("ynYN",Y$)=0 THEN PRINT"PLEASE ENTER ONLY A `Y' OR `N'.":GOTO3970
  353. 3990  IF Y$="Y" OR Y$="y" THEN GOSUB 4690
  354. 4000  RETURN
  355. 4010  '
  356. 4020  '     CALCULATE INVESTMENT TAX CREDIT
  357. 4050  TC=T1*0.1*(V(20)+V(21)=0.6*V(19))
  358. 4060  '  ALL LOANS TAKEN CARE OF NOW LETS DO YEARLY CASH FLOWS
  359. 4070  CLS
  360. 4080  PRINT TAB(25)"NOW WORKING ON YEARLY CASH FLOWS"
  361. 4100  IF V(6)=0 THEN F=1 ELSE F=0
  362. 4110  IF F=0 THEN F1 =0 ELSE F1=1
  363. 4130  PV=0:DY=0:TL=0:SP=0:CS=0:PI=0:FL=0:KA=0:KD=0:
  364. 4140  FOR K=1 TO V(18)
  365. 4150       PRINT K
  366. 4160       IF (K-V(6))>0 THEN KA=1 ELSE KA=0
  367. 4180       IF F=1 THEN 4240
  368. 4190       IF FL=-1 THEN F=1:F1=F:GOTO 4240
  369. 4200      IF V(6) > K THEN F=0:GOTO 424
  370. 4210       F=K-V(6)
  371. 4220      F1=0
  372. 4230      FL=-1
  373. 4240       E1(K)=F*V(11)*(1+V(13)/100)^(K-1)
  374. 4250       EX(K)=F*V(12)*(1+V(14)/100)^K
  375. 4260       KD=KD+KA
  376. 4270       IF KD=0 OR KD>15 THEN 4290 '  BYPASS DEPRECIATION
  377. 4280       D(K)=DP(1,KD)*V(19)+V(20)*DP(2,KD)+V(21)*DP(3,KD)+V(22)*DP(4,KD)+V(23)/15
  378. 4290       E2(K)=E1(K)-D(K)-EX(K)-IP(K)
  379. 4300       IF TL=0 AND K>1 THEN 4470 ' CHECK FOR LOSS TO CARRY FORWARD
  380. 4310       IF E2(K) < 0 THEN TL=TL+(-1*E2(K)):T1(K)=0:T2(K)=0:GOTO 4580
  381. 4320       IF E2(K) > TL THEN 4350
  382. 4330       TL=TL-(-1*E2(K))):T1(K)=0:T2(K)=0:PRINT TL
  383. 4340       GOTO 4580
  384. 4350       E2=E2(K)-TL:TL=0
  385. 4360       T2(K)=V(16)/100*E2 ' STSTE TAX PAID
  386. 4370       T1(K)=V(15)/100*(E2-T2(K)) ' FED TAX
  387. 4380       IF TC=0 THEN 4580
  388. 4390       IF TC< T1(K) THEN 4430 ELSE TC(K) = T1(K)
  389. 4400       TC=TC-T1(K)
  390. 4410       T1(K)=0
  391. 4420       GOTO 4580
  392. 4430       TC(K)=TC
  393. 4440       T1(K)=T1(K)-TC
  394. 4450       TC=0
  395. 4460       GOTO4580
  396. 4470       IF E2(K) > 0 THEN T2(K)=V(16)/100*E2(K) ELSE T2(K)=0
  397. 4480       IF E2(K) > 0 THEN T1(K)=(E2(K)-T2(K))*V(15)/100 ELSE T1(K)=0
  398. 4490       IF E2(K) < 0 THEN TL=E2(K)*(-1):GOTO 4580
  399. 4500       IF TC =0 THEN 4580
  400. 4510       IF TC < T1(K) THEN 4550 ELSE TC(K)=T1(K)
  401. 4520       TC=TC-T1(K)
  402. 4530       T1(K)=0
  403. 4540       GOTO 4580
  404. 4550       TC(K)=TC
  405. 4560       T1(K)=T1(K)-TC
  406. 4570       TC=0
  407. 4580       CF(K)=E2(K)-T1(K)-T2(K)+D(K) 'CASH FLOW FOR YEAR K
  408. 4590       DF(K)=CF(K)*(1+V(17)/100)^-K ' DISCOUNTED CASH FLOW
  409. 4600       DI(K)=CF(K)*(1+V(25)/100)^-K
  410. 4610       DY(K)=DI(K)*(1+V(17)/100)^-K
  411. 4620       SF(K)=E1(K)-EX(K)-T1(K)-T2(K)-IP(K)-IZ(K)-A1(K)-A2(K) 'SPENDABLE CASH FLOW
  412. 4630       IF SF(K)<0 THEN SP=SP+(-1)*SF(K):CS=CS+1
  413. 4650       PV=DF(K)+PV
  414. 4660       PI=DY(K)+PI
  415. 4670  NEXT K
  416. 4680  RETURN
  417. 5060  '     ERROR SUBROUTINE
  418. 5070  CLS
  419. 5080  PRINT:PRINT:PRINT TAB20)"***********************************"
  420. 5090  PRINT TAB(27)"INPUT DATA ERROR!!!"
  421. 5100  IF V(18)> 30 THEN PRINT"MAXIMUM LIFE ALLOWED IS 30 YEARS !"
  422. 5110  IF V(19)+V(20)+V(21)+V(22)>V(1) THEN PRINT"DEPRECIATION TAKEN EXCEEDES VALUE OF INVESTMENT !"
  423. 5120  PRINT:PRINT:PRINT TAB(30)"PLEASE CORRECT DATA ENTRY !!"
  424. 5130  FOR KQ=1 TO 400
  425. 5140  NEXT KQ
  426. 5150  RETURN
  427. 5160  '     REMEMBER DATA ENTRY SUBROUTINE
  428. 5170  P1=1
  429. 5180  IZ=1:IX=9
  430. 5190  I=IZ:IQ=1
  431. 5200  CLS
  432. 5210  PRINT TAB(15)"INVESTMENT ANALYSIS DATA INPUT PAGE ";P1
  433. 5220  PRINT:PRINT"PROVIDE DATA ASKED FOR . CURRENT VALE (IF ANY) SHOWN IN ()."
  434. 5230  PRINT"IF YOU WISH TO CORRECT A PREVIOUS ANSWER, ENTER `C'."
  435. 5240  PRINT"IN ORDER TO GO TO THE NEXT PAGE, ENTER `>'."
  436. 5250  PRINT STRING$(63,"=")
  437. 5260  IF I=IZ THEN 5280 ELSE FOR IQ=IZ TO I-1
  438. 5262  PRINT USING F$(IQ);V(IQ)
  439. 5264  NEXT IQ
  440. 5270  IF I>I9 THEN 5400
  441. 5280  PRINT USING F$(I);V(I);
  442. 5290  V$=""
  443. 5300  INPUT V$
  444. 5310  IF V$="" THEN 5380
  445. 5320  IF V$=">" THEN 5540 ELSE IF V$="C" THEN 5670
  446. 5330  IF V$="<" THEN 5610
  447. 5340  V(I)=VAL(V$):V$=""
  448. 5350  IF V(18)> 30 THEN GOSUB 5060
  449. 5352  GOTO 5200
  450. 5360  IF V(19)+V(20)+V(21)+V(22)>V(1) THEN GOSUB 5060
  451. 5362  GOTO 5200
  452. 5370  IF I=19 THEN 5400
  453. 5380  I=I+1:IF I<IX THEN 5200
  454. 5390  GOTO 5490
  455. 5400  PRINT STRING$(63,"=")
  456. 5410  PRINT"END OF DATA ENTRY. PLEASE CHECK DATA ON THIS PAGE."
  457. 5420  PRINT"TO CORRECT DATA, ENTER `C'. TO REVIEW PREVIOUS PAGE, ENTER `<'."
  458. 5430  PRINT"TO REVIEW ALL DATA, ENTER `R'. TO START CALCULATIONS, ENTER `G'."
  459. 5440  Y$=""
  460. 5450  INPUT Y$
  461. 5460  IF Y$= "G" OR Y$="y" THEN RETURN ELSE IF Y$="C" OR Y$="c" THEN 5500 ELSE IF Y$="<" THEN 5610
  462. 5470  IF Y$<> "R" OR Y$<>"r" THEN PRINT"PLEASE ENTER ONLY A `C', <, `R', OR `G'.":GOTO 5410
  463. 5480  CLS
  464. 5490  PRINT:PRINT TAB(15)"END OF PAGE "P1". REVIEW DATA ENTER `>' TO GO TO NEXT PAGE"
  465. 5500  PRINT TAB(15)"ENTER `C' TO CORRECT ENTRY AND `R' TO RETURN TO MAIN PROGRAM."
  466. 5510  Y$="":INPUT Y$
  467. 5520  IF Y$="<" THEN 5610
  468. 5530  IF Y$=">" THEN 5540 ELSE IF Y$ ="C"OR Y$="c" THEN 5670 ELSE IF Y$ <>"R" OR Y$<>"r" THEN PRINT"PLEASE ENTER ONLY A >, `C', OR `R'.":GOTO 5490
  469. 5540  '
  470. 5550  IF P1=PM THEN 5400
  471. 5560  P1=P1+1
  472. 5570  IZ=IZ+9
  473. 5580  IX=IZ+9
  474. 5590  I=IZ:IQ=IZ
  475. 5600  GOTO 5200
  476. 5610  IF P>1 THEN P1=P1-1 ELSE GOT0 5200
  477. 5620  IF P1=1 THEN IZ=1:IX=8
  478. 5630  IF P1=2 THEN IZ=9:IX=16
  479. 5640  IF P1=3 THEN IZ=17:IX=24
  480. 5650  IF I>IZ THEN I=IX
  481. 5660  GOTO 5200
  482. 5670  '       CORRECTION PAGE
  483. 5680  CLS
  484. 5690  V$=""
  485. 5700  PRINT:PRINT TAB(20)"ROUTINE TO CORRECT ENTRY ON PAGE "P1
  486. 5710  PRINT STRING$(63,"=")
  487. 5720  IF IX > 9 THEN IX=19
  488. 5730  FOR J=IZ TO IX
  489. 5740       PRINT J
  490. 5750       PRINT USING F$(J);V(J)
  491. 5760  NEXT J
  492. 5770  PRINT STRING$(63,"=")
  493. 5780  PRINT:PRINT"IF YOU WANT TO CORRECT ALL ENTRIES, ENTER `A'"
  494. 5790  PRINT"ENTER ITEM NUMBER TO CORRECT."
  495. 5792  INPUT"ENTER `R' TO RETURN ";YI$
  496. 5800  IF YI$="A" OR YI$="a" THEN GOTO 5160
  497. 5810  IF YI$="R" OR YI$="r" THEN 5880 ELSE J=VAL(YI$)
  498. 5820  IF J>IX THEN PRINT"NOT ON THIS PAGE.":GOTO 5790
  499. 5830  IF J=< 0 THEN J=IX
  500. 5840  PRINT USING F$(J);V(J):INPUT"ENTER CORRECT VALUE, `C' IF OK.";C$
  501. 5850  IF C$="C" OR C$="c" THEN GOTO 5670 ELSE V(J)=VAL(C$)
  502. 5860  GOTO 5670
  503. 5870  END
  504. 5880  '
  505. 5890  GOTO 5200
  506. 5900  IF V(24)< THEN 1984 THEN V(24)=1984
  507. 5910  '    READ IN NEW DEPRECIATION
  508. 5920  FOR I=1 TO 4
  509. 5930       IF I=1 THEN JM=3 ELSE IF I=2 THEN JM=5 ELSE IF I=3 THEN JM=10 ELSE JM=15
  510. 5940       FOR J=1 TO JM
  511. 5950          READ DP(I,J)
  512. 5960          DP(I,J)=DP(I,J)/100
  513. 5970      NEXT J
  514. 5980  NEXT I
  515. 5990  IF V(24)< 1987 THEN RETURN
  516. 6000  JZ=JZ+1
  517. 6010  IF V(24)= 1987 AND JZ=1 THEN 5920 ELSE IF V(24)= 1987 THEN RETURN
  518. 6020  IF JZ<= 2 THEN 5920 ELSE RETURN
  519. 6030  '     rember depreciation for 3 years
  520. 6040  DATA 25,38,37
  521. 6050  '     depreciation for 5 years
  522. 6060  DATA 15,22,21,21,21
  523. 6070  '     depreciation for 10 years
  524. 6080  DATA 8,14,12,10,10,10,9,9,9,9
  525. 6090  '     data for 15 years
  526. 6100  DATA 5,10,9,8,7,7,6,6,6,6,6,6,6,6,6
  527. 6110  '     data for 1987
  528. 6120  DATA 29,47,24,18,33,25,16,8
  529. 6130  DATA 9,19,16,14,12,10,8,6,4,2,
  530. 6140  DATA 6,12,12,11,10,9,8,7,6,5,4,4,3,2,1
  531. 6150  '     data for 1988
  532. 6160  DATA 33,45,22,20,32,24,16,8
  533. 6170  DATA 10,18,16,14,12,10,8,6,4,2
  534. 6180  DATA 7,12,12,11,10,9,8,7,6,5,4,3,3,2,1
  535. 6190  END
  536. 6200  '   initial subroutine
  537. 6210  F$(1)="TOTAL AMOUNT OF INVESTMENT                         $$#,######.##"
  538. 6220  F$(2)="AMOUNT OF FIRST LOAN                               $$#,######.##"
  539. 6230  F$(3)="YEARLY INTEREST RATE FOR 1ST. LOAN                        ##.##%"
  540. 6240  F$(4)="LIFE OF FIRST LOAN                                   ##.## YEARS"
  541. 6250  F$(5)="NUMBER OF LOAN PAYMENTS PER YEAR                              ##"
  542. 6260  F$(6)="YEARS FROM INVESTING BEFORE REC. INCOME               #.## YEARS"
  543. 6270  F$(7)="AMOUNT OF 2ND. LOAN                                $$#,######.##"
  544. 6280  F$(8)="YEARLY INTEREST RATE FOR 2ND. LOAN                        ##.##%"
  545. 6290  F$(9)="LIFE OF 2ND. LOAN                                    ##.## YEARS"
  546. 6300  F$(10)="# OF PAYMENTS PER YEAR 2ND. LOAN                              ##"
  547. 6310  F$(11)="ESTIMATED ANNUAL INCOME                            $$#,######.##"
  548. 6320  F$(12)="ESTIMATED ANNUAL EXPENSES                          $$#,######.##"
  549. 6330  F$(13)="ESCALATION % FOR INCOME                                   ##.##%"
  550. 6340  F$(14)="ESCALATION % FOR EXPENSES                                 ##.##%"
  551. 6350  F$(15)="FEDERAL INCOME TAX RATE                                   ##.##%"
  552. 6360  F$(16)="STATE INCOME TAX RATE                                     ##.##%"
  553. 6370  F$(17)="DISCOUNT RATE                                             ##.##%"
  554. 6380  F$(18)="LIFE OF INVESTMENT                                   ##.## YEARS"
  555. 6390  F$(19)="VALUE OF THREE YEAR PROPERTY                       $$#,######.##"
  556. 6400  F$(20)="VALUE OF 5 YEAR PROPERTY                           $$#,######.##"
  557. 6410  F$(21)="VALUE OF 10 YEAR PROPERTY                          $$#,######.##"
  558. 6420  F$(22)="VALUE OF 15 YEAR PROPERTY                          $$#,######.##"
  559. 6430  F$(23)="VALUE OF ST LINE REAL-ESTATE                       $$#,######.##"
  560. 6440  F$(24)="YEAR PROPERTY PLACED IN SVC                                 ####"
  561. 6450  F$(25)="INFLATION RATE                                            ##.##%"
  562. 6460  RETURN
  563. 6470  CLS
  564.